In block based storage systems, overall system performance is improved by moving data that is frequently accessed (hot data) to faster and more capable drives and at the same time moving less frequently accessed data (cold data) to less capable slow storage. This solution, known as storage tiering, is more cost effective than using high performance storage for all storage needs. A typical tiering configuration will utilize a large storage pool of cheaper and less capable drives (e.g. SATA drives) as a “slow tier” and a small pool of expensive and more capable drives (e.g. SSDs) as a “fast tier”. Tiering provides superior performance per unit cost than other comparable configuration.
For tiering to be effective, hot data must be maintained on the fast tier and cold data must be maintained on the slow tier even as the access frequency of data changes over time. A tiered data storage system tracks the access frequency of data or blocks of data and moves data between tiers as access frequencies change. The movement of data between tiers is an overhead that takes away bandwidth from actually servicing IOs.
Consequently, it would be advantageous if an apparatus existed that is suitable for efficiently migrating data between tiers in a tiered data storage system.